package 二分查找.easy;

/**
 * 1. 问题描述
 *      把一个数组最开始的若干个元素搬到数组的末尾，我们称之为数组的旋转。
 *      输入一个递增排序的数组的一个旋转，输出旋转数组的最小元素。例如，
 *      数组[3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转，该数组的最小值为1。
 *
 * 2. 算法实现
 *      1. 线性扫描
 *      2.
 *
 * 3. 代码分析
 */
@SuppressWarnings("all")
public class 旋转数组的最小数字 {
    public static void main(String[] args) {

    }
    // 线性扫面
    public static int minArray1(int[] numbers) {
        int ans = numbers[0];
        for(int num : numbers) {
            if(ans > num) {
                ans = num;
            }
        }
        return ans;
    }

    // 二分法

    /**
     * 分析为什么可以使用二分法? 此时是在传统的二分算法上增加了线性思想的一道变式题
     * 1. 对于传统的有序数组为什么可以使用二分进行查找定位?
     * 2. 对于此题数组的并不是一个有序数组，为什么依然可以使用二分查找呢?
     * @param numbers
     * @return
     */
    public int minArray2(int[] numbers) {
         int ans = 0;

         return ans;
    }
}
